邊界網關協議 (BGP)是一種標準化的外部網關協議,旨在在 Internet 上的自治系統 (AS) 之間交換路由和可達性信息。從最基本的意義上講,BGP 是一種將 Internet 連接在一起的路由協議。它負責為數據包通過多個自治系統選擇從其源到目的地的最佳路由。
什么是BGP?
當 Internet 的概念最初形成時,以及隨后的幾年中,Internet 只是一個小小的云。因此,以靜態路由為代價實現了連接性,即路由器上的路由表是預先配置的,不考慮動態更改。但隨著 Internet 的激增,靜態路由已不再足夠。路由協議需要更加動態,并根據各種因素(如流量水平、路由器跳數、帶寬、可靠性等)在現有路由中加入新路由/更改。這種補償網絡拓撲變化的能力使動態路由成為基礎對于互聯網。
什么是自治系統?
隨著 Internet 上設備數量的增加,路由數量也隨之增加。當跟蹤大量路由變得越來越困難時,網絡世界決定使用自治系統。自治系統的概念源于互聯網的基本定義,互聯網是互連計算機網絡的全球系統。一個自治系統(AS)在因特網上是一個網絡或一組使用相同路由策略的網絡,通常由相同的互聯網服務提供商(ISP)提供服務。每個自治系統都分配有一個唯一的標識號,稱為自治系統號 (ASN),由各種路由協議使用。
BGP 允許 Internet 上的不同自治系統共享路由信息。自治系統的網關稱為自治系統邊界路由器 (ASBR)。ASBR 負責從鄰居那里收集路由信息,維護 BGP 路由表,并進一步將它們通告給對等體。
讓我們考慮一個簡單的例子來理解 BGP 如何將 Internet 綁定在一起。AS 51 和AS 49 是BGP 對等體,并建立了旨在相互交換路由信息的鄰居關系。AS 49 和AS 234、AS 51 和AS 110、AS 234 和AS 110 建立了類似的鄰居關系。BGP 允許每個對等方從其相鄰對等方收集路由信息,然后進一步完整地通告該信息。因此,AS 51 中的 ASBR 知道它如何將數據包路由到 AS 234,即使它們沒有直接連接。BGP 是一種路徑向量路由協議,因為 ASBR 中的路由表包含網絡前綴到構成路徑的自治系統列表的映射。
讓我們假設駐扎在印度的設備 1 想要連接到駐扎在美國的設備 2。設備 1 訂閱了網絡自治號為 51 的 ISP 的服務,設備 2 訂閱了網絡自治號為 234 的 ISP 的服務。 當連接到設備 2 時,設備 1 發送帶有源的數據包IP 是它自己的 IP 地址,目標 IP 是設備 2 的 IP 地址。數據包首先到達 AS 51 的網關,那里的路由器斷定數據包的目的地不在其自己的網絡中。它通過 AS 51 的內部路由器路由這個數據包。
請注意,自治系統內部的路由過程是使用內部網關路由協議 (IGRP)、開放最短路徑優先 (OSPF)、路由信息協議 (RIP)、中間系統到中間系統 (IS-IS) 等協議實現的。與 BGP 不同,它不能在外部使用。
在示例拓撲中,觀察到有兩條從 AS 51 到 AS 234 的路由。
- AS 51 -> AS 49 -> AS 234
- AS 51 -> AS 110 -> AS 234
當到達目的地的路徑有多條時,BGP 能夠根據組織的路由策略收集的信息(基于負載、延遲、可靠性、成本等指標)將所有路徑從最首選到最不首選進行排序. 這些指標本質上是動態的,因此,BGP 路由表會根據現有網絡條件反映到達目的地的最佳路徑。ASN 51 的 ASBR 查找到數據包目的地的路徑,并通過 AS 49 或 AS 110 將其轉發,以當時最優先的為準。如果沒有 BGP,ASN 51 的 ASBR 將永遠不會知道將數據包轉發到哪條路徑以使其到達目的地。
BGP 的安全性如何?
需要注意的是,BGP 旨在創建一個全球網絡網格,當時安全性并不是一個重要方面。因此,BGP 本身很少能阻止攻擊和利用。路由劫持是一種更常見的 BGP 攻擊,其中攻擊者使用 BGP 向對等方通告虛假/有害路由,從而通過引發網絡攻擊、關閉服務或造成可靠性問題來輕松破壞互聯網。
為了保護 BGP,互聯網工程任務組 (IETF) 提倡 ISP 和企業進入從互聯網編號分配機構 (IANA) 開始的信任鏈,并將其授權路由注冊到作為 BGP 對等體的自治系統。AS 51 和 AS 49 簽訂協議,限制它們交換虛假路由。除此之外,ISP 通常會在其 ASBR 上配置數據包檢查器和過濾器以謹慎行事。因此,BGP 為 ISP 提供了對其通告的路由以及它從其對等方接受的路由的更多控制。出于這個原因,在許多其他協議中,可以毫無疑問地說BGP 是 Internet 領先的外部網關協議。